package com.wsc.singleton;

/**
 * 静态内部类方式
 * JVM 保证单例
 * 在加载外部类时不会加载内部类，可以实现懒加载
 */
public class NestedClass {
    private NestedClass(){}

    private static class InsHolder {
        private final static NestedClass INSTANCE = new NestedClass();
    }

    public static NestedClass getInstance(){
        return InsHolder.INSTANCE;
    }

    /**
     * 多个线程调用这个方法,检查对象是否一样
     */
    public static void main(String[] args) {
        for (int i = 0; i < 100 ; i++) {
            new Thread(()->{
                System.out.println(DCLPattern.getInstance().hashCode());
            }).start();
        }
    }
}
